package tables

import "gorm.io/plugin/soft_delete"

const (
	RootId = 1

	UserStatusActivated   = 1 // 可用
	UserStatusDisabled    = 2 // 禁用
	UserStatusUnactivated = 3 // 未激活

	AccountLvForRoot  = 1 // 超级管理员
	AccountLvForAdmin = 2 //管理员
	AccountLvForUser  = 3 //用户

	DefaultPassword = "8888" // 默认密码
)

type User struct {
	UserId            int64                 `json:"user_id,string" gorm:"primaryKey"`
	Account           string                `json:"account" `                  // 账户
	Password          string                `json:"-" `                        // 密码
	Status            int                   `json:"status" `                   // 账户状态
	AccountLv         int                   `json:"account_lv"`                // 账号级别
	Nickname          string                `json:"nickname"`                  // 昵称
	Phone             string                `json:"phone"`                     // 手机号
	ReferrerId        int64                 `json:"referrer_id,string"`        // 推荐人ID
	TokenMoney        float64               `json:"token_money"`               // 代币
	Score             float64               `json:"score"`                     // 积分,固定为和你的消费一比一
	RoleCode          string                `json:"role_code"`                 // 角色码
	InviteCode        string                `json:"invite_code"`               // 邀请码
	ResidueAuctionNum int32                 `json:"residue_auction_num"`       // 剩余抢拍次数
	PrivilegeEndTime  int64                 `json:"privilege_end_time,string"` // 特权结束时间
	PrivilegeNum      int32                 `json:"privilege_num"`             // 剩余特权次数
	CreatedAt         int64                 `json:"created_at,string" gorm:"autoCreateTime"`
	DeletedAt         soft_delete.DeletedAt `json:"-"`
}

func (r *User) TableName() string {
	return "sys_user"
}
